Skip to content

feat(enterprise): mark legacy api compatibility#69

Closed
Gracker wants to merge 1 commit intofeature/enterprise-multi-tenant-rbac-owner-guardfrom
feature/enterprise-multi-tenant-legacy-api-wrapper
Closed

feat(enterprise): mark legacy api compatibility#69
Gracker wants to merge 1 commit intofeature/enterprise-multi-tenant-rbac-owner-guardfrom
feature/enterprise-multi-tenant-legacy-api-wrapper

Conversation

@Gracker
Copy link
Copy Markdown
Owner

@Gracker Gracker commented May 8, 2026

Summary

  • add reusable legacy API compatibility middleware with Deprecation, Sunset, Link, and Warning headers
  • wrap current legacy trace/report/agent/provider mounts while preserving existing RequestContext handlers
  • record legacy API telemetry for wrapped compatibility paths
  • mark README §0.2.5 complete

Scope note

  • This does not add resource-oriented /api/workspaces/:workspaceId/* endpoints; that remains §0.2.6.
  • Existing /api/agent hard-removed legacy path still returns 410 through the existing reject middleware.

Verification

  • cd backend && npx jest src/middleware/__tests__/legacyApiCompatibility.test.ts src/routes/__tests__/requestContextRouteCoverage.test.ts src/services/__tests__/legacyApiTelemetry.test.ts --runInBand
  • cd backend && npm run typecheck
  • cd backend && npm run test:scene-trace-regression
  • npm run verify:pr

mr-torto pushed a commit to mr-torto/SmartPerfetto that referenced this pull request May 8, 2026
, Gracker#33, Gracker#49, Gracker#68, Gracker#69, Gracker#72, Gracker#78, #132)

StartupAnrMethodGraphContract bundles the startup / ANR / method-trace
attribution graph. Four facets, all optional:
- StartupPhaseRow[] with ART verifier / JIT / class loading / Compose
  recomposition / Startup library initializers (Spark Gracker#32, Gracker#68, Gracker#69,
  #132)
- AnrAttribution[] joining traces.txt thread samples to method-trace
  evidence (Spark Gracker#33, Gracker#49)
- MethodTraceNode[] for Matrix / BTrace / RheaTrace / KOOM / bytecode
  imports (Spark Gracker#72, Gracker#78)
- Reused JankDecisionNode (Plan 10) for the decision tree shape

StartupPhase uses string union so future Perfetto stdlib startup phases
do not require an enum bump.

Plan: docs/superpowers/spark/plans/17-startup-anr-memory-graphs.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mr-torto pushed a commit to mr-torto/SmartPerfetto that referenced this pull request May 8, 2026
buildStartupAnrMethodGraph fuses startup phase rows, ANR attribution and
method-trace nodes into one StartupAnrMethodGraphContract. Coverage is
computed per spark dimension based on input shape:
- Phases with art/JIT/class-loading timings flip Spark #132
- Phases with non-zero recompositionCount flip Spark Gracker#68
- Phases with initializersFired flip Spark Gracker#69
- ANR attribution flips Spark Gracker#33; thread samples flip Spark Gracker#49
- Method-trace nodes with source matrix/btrace/rheatrace/koom flip
  Spark Gracker#72; bytecode source flips Spark Gracker#78

The pruneMethodTraceChildren helper drops dangling child ids from the
node graph so the contract is always renderable even when upstream
importers emit incomplete data.

Tests: 5 cases covering ART promotion, recomposition promotion, dangling
children pruning, source-based promotion, and unsupported.

Plan: docs/superpowers/spark/plans/17-startup-anr-memory-graphs.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Gracker
Copy link
Copy Markdown
Owner Author

Gracker commented May 9, 2026

已通过 commit 67856ec (merge) + 023a84a (frontend rebuild) 合入 main,关闭此 PR。

@Gracker Gracker closed this May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant